Network traffic is transmitted from a network (e.g., a local area network (LAN), a wide-area network (WAN), the Internet, etc.), from a sending system (e.g., a computer system) to a receiving system (e.g., a computer system) via a network interface card (NIC). The NIC is a piece of hardware found in a typical computer system that includes functionality to send and receive network traffic. Typically, network traffic is transmitted in the form of packets, where each packet includes a header and a payload. The header contains information regarding the source address, destination address, size, transport protocol used to transmit the packet, and various other identification information associated with the packet of data. The payload contains the actual data to be transmitted from the network to the receiving system.
Some sending and receiving systems include a single NIC, while other sending and receiving systems include multiple NICs. When multiple NICs are present on the system, one or more NICs may be grouped to form an aggregation group. The sending and receiving systems that include aggregation groups typically have higher packet throughput due to the higher availability of NICs through which packets may be sent and received. More specifically, the aggregation group is utilized by the systems (i.e., sending and receiving systems) via a virtual NIC.
Thus, when a client (i.e., a process configured to send and/or receive a packet) attempts to send a packet to a receiving system, the client sends the packet to the virtual NIC (which appears to the client as an actual NIC). A link aggregation module within the system receives the packet and then determines which of the multiple NICs within the aggregation group to use to service the packet (i.e., send the packet to receiving system). The link aggregation module subsequently forwards the request to the appropriate NIC in the aggregation group. The NIC subsequently services the packet.